package com.ht.api.task;

import javax.sql.DataSource;

import com.ht.api.constant.KfSessionStatus;
import com.ht.api.db.Db;
import com.ht.api.db.DbConfig;
import com.ht.api.db.Entity;
import com.ht.api.db.task.TaskHandler;

import cn.hutool.json.JSONObject;

/**
 * 客服会话过期任务
 * @author asq
 * @createTime 2025年4月6日 16:42:30
 */
public class KfSessionOverTask implements TaskHandler {

	@Override
	public String getName() {
		return "客服会话过期任务";
	}

	@Override
	public boolean handler(JSONObject requestParam, String groupId, long taskId) {
		// 获取任务参数
		long tenantId = requestParam.getLong("tenant_id");
		DataSource ds = DbConfig.useTenantDb(tenantId);
		String kfSessionId = requestParam.getStr("kfSessionId");
		
		// 设置客服会话为已结束
		Entity kfSession = Entity.create("kf_session");
		kfSession.setMainId(kfSessionId);
		kfSession.set("status", KfSessionStatus.OVER);
		Db.insert(ds, kfSession);
		
		return true;
	}

}
